package com.gxa.hualian.controller;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;

/**
 * 本质上,就是一个aop的通知,专门用于加强异常出现的时候的抛出通知
 * @author bill
 * @date 2021/10/21 15:20
 */
@RestController
@ControllerAdvice
public class ExceptionController {
    /**
     * 当有异常发生,抛出通知介入到目标操作
     * 并把异常对象注入到参数Exception中
     * value 表示什么类型的错误或异常才会被处理
     * 我们选择使用Throwable.class(Error和Exception都要记录)
     */
    @ExceptionHandler(Throwable.class)
    public void handler(Exception e){
        // 具体操作和三阶段一致: 自定义异常就返给前端,系统异常记录到日志文件(log4j)
        System.out.println("e:"+e);
    }
}
